// index.js
Page({
  data: {
    currentX: 10  // 初始值（可从下位机初始化）
  },

  /**
   * 处理减小按钮点击
   */
  handleDecrease() {
    const current = this.data.currentX;
    
    // 情况1：当前是"--"，点击减小直接跳转到180
    if (current === '--') {
      this.setData({ currentX: 180 });
      return;
    }

    // 情况2：当前是有效数值（数字类型）
    const num = Number(current);
    if (isNaN(num)) {
      // 防御性编程：无效数值时重置为180（根据需求可调整）
      this.setData({ currentX: 180 });
      return;
    }

    if (num === 10) {
      // 边界值10，点击减小变为--
      this.setData({ currentX: '--' });
    } else {
      // 中间值，正常减10（如20→10，170→160）
      const newNum = num - 10;
      this.setData({ currentX: newNum });
    }
  },

  /**
   * 处理增加按钮点击
   */
  handleIncrease() {
    const current = this.data.currentX;
    
    // 情况1：当前是"--"，点击增加直接跳转到10
    if (current === '--') {
      this.setData({ currentX: 10 });
      return;
    }

    // 情况2：当前是有效数值（数字类型）
    const num = Number(current);
    if (isNaN(num)) {
      // 防御性编程：无效数值时重置为10（根据需求可调整）
      this.setData({ currentX: 10 });
      return;
    }

    if (num === 180) {
      // 边界值180，点击增加变为--
      this.setData({ currentX: '--' });
    } else {
      // 中间值，正常加10（如10→20，170→180）
      const newNum = num + 10;
      this.setData({ currentX: newNum });
    }
  },

  /**
   * 接收下位机传入的x值（关键外部交互接口）
   * @param {any} newValue 下位机传入的新值（可能是数值/字符串/其他类型）
   */
  receiveXFromLowerMachine(newValue) {
    let finalX;
    
    // 校验逻辑：必须是数值且在10-180之间，且是10的倍数
    if (
      typeof newValue === 'number' && 
      newValue >= 10 && 
      newValue <= 180 && 
      newValue % 10 === 0
    ) {
      finalX = newValue;  // 有效数值，直接显示
    } else {
      finalX = '--';      // 无效数值，显示占位符
    }

    this.setData({ currentX: finalX });
  }
});